<?php
/**
 * Контроллер для "общих" страниц сайта (главная, ошибка)
 */
class SiteController extends Controller
{	
	/**
	 * Метод возвращает описание экшенов
	 * Каждая страница - это результат работы экшена
	 * У каждой страницы свой экшен
	 * Экшен описывается в контроллере
	 */
	public function actions()
	{
		return array(
			// Обработчик для отображения статичных страниц
			// Сделано так, чтобы не писать под каждую отдельную страницу отдельный экшен
			// Страницы класть сюда: protected/views/site/pages
			// Каждая страница должна быть файлом вида НАЗВАНИЕ_ФАЙЛА.php
			// Доступны такие страницы будут по адресу /site/page/view/НАЗВАНИЕ_ФАЙЛА
			'page'=>array(
				'class'=>'CViewAction',
			),
		);
	}

	/**
	 * Стартовая страница (главная)
	 * Это отдельный экшен под главную страницу сайта
	 * Доступна по адресу /site/index
	 */
	public function actionIndex()
	{
		$this->redirect(array('/project'));
		// Задаем заголовок, чтобы вывести его в шаблоне (лэйауте)
		// Лэйаут - это основной каркас верстки сайта
		// все лэйауты лежат в protected/layouts
		$this->title = 'Главная';
		// Рендерим представление
		// т.е. генерируем код страницы
		// первый параметр (index) - это название представления (вьюхи)
		// ее можно найти в protected/views/site/
		// где site - это название текущего контроллера (откуда вызываем вьюху, т.е. SiteController)
		$this->render('index');
	}

	/**
	 * Экшен, который будет запускаться автоматически
	 * в случае возникновения ошибки (чаще всего будет при 404-й ошибке)
	 */
    public function actionError()
    {
		// Если есть описание ошибки, рендерим вьюху
        if(Yii::app()->errorHandler->getError() !== null) 
		{
            $error = Yii::app()->errorHandler->getError();
            $this->render('error',  $error);
        }
		// Иначе редиректим на главную
		else 
		{
            $this->redirect(Yii::app()->request->getBaseUrl(true));
        }
    }
}